//package org.jeecg.modules.wlhy.customer.controller;
//
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.shiro.authz.annotation.RequiresPermissions;
//import org.jeecg.common.api.vo.Result;
//import org.jeecg.common.aspect.annotation.AutoLog;
//import org.jeecg.common.system.base.controller.JeecgController;
//import org.jeecg.common.system.query.QueryGenerator;
//import org.jeecg.modules.wlhy.customer.entity.HyCustomerAccountPeriod;
//import org.jeecg.modules.wlhy.customer.service.IHyCustomerAccountPeriodService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.servlet.ModelAndView;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.math.BigDecimal;
//import java.util.Arrays;
//
// /**
// * @Description: hy_customer_account_period
// * @Author: jeecg-boot
// * @Date:   2021-01-31
// * @Version: V1.0
// */
//@Api(tags="hy_customer_account_period")
//@RestController
//@RequestMapping("/customer/hyCustomerAccountPeriod")
//@Slf4j
//public class HyCustomerAccountPeriodController extends JeecgController<HyCustomerAccountPeriod, IHyCustomerAccountPeriodService> {
//	@Autowired
//	private IHyCustomerAccountPeriodService hyCustomerAccountPeriodService;
//
//	/**
//	 * 分页列表查询
//	 *
//	 * @param hyCustomerAccountPeriod
//	 * @param pageNo
//	 * @param pageSize
//	 * @param req
//	 * @return
//	 */
//
//	@ApiOperation(value="hy_customer_account_period-分页列表查询", notes="hy_customer_account_period-分页列表查询")
//	@GetMapping(value = "/list")
//	public Result<?> queryPageList(HyCustomerAccountPeriod hyCustomerAccountPeriod,
//								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
//								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
//								   HttpServletRequest req) {
//		QueryWrapper<HyCustomerAccountPeriod> queryWrapper = QueryGenerator.initQueryWrapper(hyCustomerAccountPeriod, req.getParameterMap());
//		Page<HyCustomerAccountPeriod> page = new Page<HyCustomerAccountPeriod>(pageNo, pageSize);
//		IPage<HyCustomerAccountPeriod> pageList = hyCustomerAccountPeriodService.page(page, queryWrapper);
//		for (HyCustomerAccountPeriod record : pageList.getRecords()) {
//			BigDecimal frzAmt= hyCustomerAccountPeriodService.getFrzAmtByCustomerId(record.getCustomerId());
//			BigDecimal subtract = record.getAmt().subtract(frzAmt);
//			if(subtract.compareTo(BigDecimal.ZERO) == -1){
//				subtract = BigDecimal.ZERO;
//			}
//			record.setAvailAmt(subtract);
//			record.setFrzAmt(frzAmt);
//		}
//		return Result.OK(pageList);
//	}
//
//	/**
//	 *   添加
//	 *
//	 * @param hyCustomerAccountPeriod
//	 * @return
//	 */
//	@AutoLog(value = "hy_customer_account_period-添加")
//	@ApiOperation(value="hy_customer_account_period-添加", notes="hy_customer_account_period-添加")
//	@PostMapping(value = "/add")
//	@RequiresPermissions("sys:accperiod:add")
//	public Result<?> add(@RequestBody HyCustomerAccountPeriod hyCustomerAccountPeriod) {
//		String customerId = hyCustomerAccountPeriod.getCustomerId();
//		HyCustomerAccountPeriod customerAccountPeriod = hyCustomerAccountPeriodService.getByCustomerId(customerId);
//		if(customerAccountPeriod != null){
//			return Result.error("已经开通过了，不能重复添加");
//		}
//		hyCustomerAccountPeriodService.save(hyCustomerAccountPeriod);
//		return Result.OK("添加成功！");
//	}
//
//	@AutoLog(value = "调整账期")
//	@ApiOperation(value="调整账期", notes="调整账期")
//	@PostMapping(value = "/setAmt")
//	@RequiresPermissions("sys:accperiod:setAmt")
//	public Result<?> setAmt(@RequestBody HyCustomerAccountPeriod hyCustomerAccountPeriod) {
//	 String id = hyCustomerAccountPeriod.getId();
//		HyCustomerAccountPeriod customerAccountPeriod = hyCustomerAccountPeriodService.getById(id);
//		if (customerAccountPeriod == null) {
//			return Result.error("记录不存在");
//		}
//		BigDecimal newamt = hyCustomerAccountPeriod.getAmt();
//		if (newamt == null) {
//			return Result.error("调整账期金额不正确");
//		}
//		BigDecimal frzAmt= hyCustomerAccountPeriodService.getFrzAmtByCustomerId(customerAccountPeriod.getCustomerId());
//		//计算可用余额
//		if (newamt.compareTo(frzAmt) == -1) {
//			return Result.error("调整账期金额不能小于已冻结金额");
//		}
//		customerAccountPeriod.setAmt(newamt);
//		//			 BigDecimal newAvailAmt = newamt.subtract(frzAmt);
//		//			 customerAccountPeriod.setAvailAmt(newAvailAmt);
//		hyCustomerAccountPeriodService.updateById(customerAccountPeriod);
//	 return Result.OK("操作成功！");
//	}
//
//	/**
//	 *  编辑
//	 *
//	 * @param hyCustomerAccountPeriod
//	 * @return
//	 */
//	@AutoLog(value = "hy_customer_account_period-编辑")
//	@ApiOperation(value="hy_customer_account_period-编辑", notes="hy_customer_account_period-编辑")
//	@PutMapping(value = "/edit")
//	@RequiresPermissions("sys:accperiod:edit")
//	public Result<?> edit(@RequestBody HyCustomerAccountPeriod hyCustomerAccountPeriod) {
//		hyCustomerAccountPeriodService.updateById(hyCustomerAccountPeriod);
//		return Result.OK("编辑成功!");
//	}
//
//	/**
//	 *   通过id删除
//	 *
//	 * @param id
//	 * @return
//	 */
//	@AutoLog(value = "hy_customer_account_period-通过id删除")
//	@ApiOperation(value="hy_customer_account_period-通过id删除", notes="hy_customer_account_period-通过id删除")
//	@DeleteMapping(value = "/delete")
//	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
//		hyCustomerAccountPeriodService.removeById(id);
//		return Result.OK("删除成功!");
//	}
//
//	/**
//	 *  批量删除
//	 *
//	 * @param ids
//	 * @return
//	 */
//	@AutoLog(value = "hy_customer_account_period-批量删除")
//	@ApiOperation(value="hy_customer_account_period-批量删除", notes="hy_customer_account_period-批量删除")
//	@DeleteMapping(value = "/deleteBatch")
//	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
//		this.hyCustomerAccountPeriodService.removeByIds(Arrays.asList(ids.split(",")));
//		return Result.OK("批量删除成功!");
//	}
//
//	/**
//	 * 通过id查询
//	 *
//	 * @param id
//	 * @return
//	 */
//	@ApiOperation(value="hy_customer_account_period-通过id查询", notes="hy_customer_account_period-通过id查询")
//	@GetMapping(value = "/queryById")
//	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
//		HyCustomerAccountPeriod hyCustomerAccountPeriod = hyCustomerAccountPeriodService.getById(id);
//		if(hyCustomerAccountPeriod==null) {
//			return Result.error("未找到对应数据");
//		}
//		return Result.OK(hyCustomerAccountPeriod);
//	}
//
//    /**
//    * 导出excel
//    *
//    * @param request
//    * @param hyCustomerAccountPeriod
//    */
//    @RequestMapping(value = "/exportXls")
//    public ModelAndView exportXls(HttpServletRequest request, HyCustomerAccountPeriod hyCustomerAccountPeriod) {
//        return super.exportXls(request, hyCustomerAccountPeriod, HyCustomerAccountPeriod.class, "hy_customer_account_period");
//    }
//
//    /**
//      * 通过excel导入数据
//    *
//    * @param request
//    * @param response
//    * @return
//    */
//    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
//    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
//        return super.importExcel(request, response, HyCustomerAccountPeriod.class);
//    }
//
//}
